//
//  MAKCollectionViewCellModel.h
//  MAKCommon
//
//  Created by zhuwh on 2020/3/27.
//  Copyright © 2020 mark. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@protocol MAKCollectionViewCellModel <NSObject>

@required

/**
 Cell对应的类

 @return cell类
 */
- (Class )cellClass;

/**
 多个Class 对应key获取
 */
- (Class )cellClassWithKey:(NSString*)key;

@optional


/**
 Cell对应的重用标识

 @return cell重用字符串
 */
- (NSString *)cellIdentifier;

- (NSString *)cellIdentifierWithKey:(NSString*)key;

@end

static const NSInteger kCollectionActionNull = 0;

@interface MAKCollectionViewCellModel<__covariant ObjectType> : NSObject<MAKCollectionViewCellModel>

- (instancetype)initWithModel:(ObjectType)model actionId:(NSInteger)actionId;
- (instancetype)initWithModel:(ObjectType)model;

@property (nonatomic, readonly) ObjectType model;
@property (nonatomic, readonly) NSInteger actionId;

@end

NS_ASSUME_NONNULL_END
